package tsb.dtd;

/**
 *
 * validador sintactico de un dtd
 */
public class DTDValidadorSintaxis {

    public static final int ERROR    = -1;
    public static final int ATTLIST  = 0;
    public static final int ELEMENT  = 1;
    public static final int ENTITY   = 2;
    public static final int DOC_INFO = 3;
    private ValidadorSintaxisElement validadorElement;
    private ValidadorSintaxisAttList validadorAttList;
    private ValidadorSintaxisPrologo validadorPrologo;

    public DTDValidadorSintaxis() {
        validadorElement = new ValidadorSintaxisElement();
        validadorAttList = new ValidadorSintaxisAttList();
        validadorPrologo = new ValidadorSintaxisPrologo();
    }

    public int validar(String aValidar) {
        int resultado = DTDValidadorSintaxis.ERROR;

        try {
            if (validadorElement.validar(aValidar)) {
                resultado = DTDValidadorSintaxis.ELEMENT;
            } else if (validadorAttList.validar(aValidar)) {
                resultado = DTDValidadorSintaxis.ATTLIST;
            } else if (validadorPrologo.validar(aValidar)) {
                resultado = DTDValidadorSintaxis.DOC_INFO;
            }
        } catch (Exception e) {
            resultado = DTDValidadorSintaxis.ERROR;
        } finally {
            return resultado;
        }
    }
}
